type Op[R, A] = A => R